//Source file: D:\\aaa\\com\\ce\\pms\\renovation\\service\\IRenovateManageService.java

package com.ce.pms.renovation.service;

import java.util.List;

import com.ce.pms.base.service.IPmsBaseService;
import com.ce.pms.renovation.model.RenovateRequisitionDO;
import com.ce.pms.renovation.vo.RenovateChargeItemVO;
import com.ce.pms.renovation.vo.RenovateRequisitionQueryVO;
import com.ce.pms.renovation.vo.RenovateRequisitionVO;
import com.sitechasia.webx.core.support.Page;


public interface IRenovateManageService extends IPmsBaseService{

   /**
    * 新增装修申请
    * @param requisitionVO - 申请VO
    * @return RenovateRequisitionVO
    * @roseuid 4937701D02CE
    */
   public RenovateRequisitionVO addRequisition(RenovateRequisitionVO requisitionVO);

   /**
    * 修改装修申请
    * @param requisitionVO - 申请VO
    * @return RenovateRequisitionVO
    * @roseuid 493778050119
    */
   public RenovateRequisitionVO editRequisition(RenovateRequisitionVO requisitionVO);

   /**
    * 删除装修申请
    * @param requisitionId - 申请VO
    * @return RenovateRequisitionVO
    * @roseuid 4937781C001F
    */
   public void deleteRequisition(Long requisitionId);


   /**
    * 装修申请高级
    * @param queryCondition - 组合查询条件
    * @return Page
    * @roseuid 49377A1E034B
    */
   public Page queryRequisitions(RenovateRequisitionQueryVO queryCondition);

   /**
    * 查看装修申请明细
    * @param requisitionId - 装修申请ID
    * @return RenovateRequisitionVO
    * @roseuid 49377ACC034B
    */
   public RenovateRequisitionVO getRequisition(Long requisitionId);

   /**
    * 功能描述:根据房屋ID获得装修申请的概要信息<br>
    * @param houseId
    * @return<br>
    * Create author:罗军林<br>
    * Create on:2008-12-23<br>
    * Edit author:<br>
    * Edit on:<br>
    * Why:<br>
    */
   public RenovateRequisitionVO getRequisitionOutline(Long houseId);


   /**
    * 功能描述: 是否允许新增，根据业务规则判断,有一项不满足将抛出异常;<br>
    * <ol>
    * <li>房间是否存在</li>
    * <li>房间是否存在产权</li>
    * <li>房间是否处于退伙中</li>
    * <li>房间是否已经编制过申请尚未完结<li>
    * </ol>
    * @param houseNumber
    * @return<br>
    * Create author:罗军林<br>
    * Create on:2008-12-23<br>
    * Edit author:<br>
    * Edit on:<br>
    * Why:<br>
    */
   public boolean isAllowAddRequisition(String houseNumber);

   /**
    * 功能描述:作废指定的装修申请<br>
    * 1)状态改为异常完结 2)删除未处理的费用记录
    * @param requisitionId<br>
    * Create author:罗军林<br>
    * Create on:2009-1-4<br>
    * Edit author:<br>
    * Edit on:<br>
    * Why:<br>
    */
   public void blankOutRequistion(Long requisitionId);

	/**
	 * 功能描述:查询指定许可证的收费项目列表<br>
	 * @param requisitionId
	 * @return<br>
	 * Create author:罗军林<br>
	 * Create on:2008-12-25<br>
	 * Edit author:<br>
	 * Edit on:<br>
	 * Why:<br>
	 */
   public List<RenovateChargeItemVO> getRequisitionChargeItemList(Long licenceId);

   /**
    * 功能描述:是否允许删除，根据业务规则判断<br>
    * 1)如果不允许删除,将抛出异常(只有新建且流程处于装修申办才能删除)
    * 2)如果已经缴费,将返回false,只要有一项费用缴费都将返回false
    * 3)其它返回true
    * @param renovateRequistionDO
    * @return<br>
    * Create author:罗军林<br>
    * Create on:2008-12-25<br>
    * Edit author:<br>
    * Edit on:<br>
    * Why:<br>
    */
   public boolean isAllowDeleteRequisition(Long requistionId);
}
